@echo off
chcp 65001 >nul
echo ==========================================
echo QQ即时通信 - 图片功能专项测试
echo ==========================================
echo.

echo 🖼️ 本工具专门测试图片功能：
echo 1️⃣ 图片文件选择和读取
echo 2️⃣ 图片编码和网络传输
echo 3️⃣ 图片显示和渲染
echo 4️⃣ 错误处理和调试
echo.

echo === 准备测试环境 ===
if not exist "test_images" (
    mkdir test_images
    echo 创建测试图片目录
)

echo.
echo 📋 测试准备：
echo ✅ 请准备一些测试图片文件（jpg, png, gif等）
echo ✅ 确保图片文件大小适中（建议小于5MB）
echo ✅ 两个客户端窗口都要连接到服务器
echo ✅ 选择不同的用户进行聊天
echo.

echo === 编译项目 ===
call mvn compile -q
if %errorlevel% neq 0 (
    echo ❌ 编译失败！
    pause
    exit /b 1
)
echo ✅ 编译成功
echo.

echo === 启动程序（图片功能调试模式）===
set IMAGE_DEBUG_OPTS=-Dfile.encoding=UTF-8
set IMAGE_DEBUG_OPTS=%IMAGE_DEBUG_OPTS% -Dsun.jnu.encoding=UTF-8
set IMAGE_DEBUG_OPTS=%IMAGE_DEBUG_OPTS% -Duser.language=zh
set IMAGE_DEBUG_OPTS=%IMAGE_DEBUG_OPTS% -Duser.country=CN
set IMAGE_DEBUG_OPTS=%IMAGE_DEBUG_OPTS% -Djava.awt.useSystemAAFontSettings=on
set IMAGE_DEBUG_OPTS=%IMAGE_DEBUG_OPTS% -Dswing.aatext=true

echo JVM参数: %IMAGE_DEBUG_OPTS%
echo.

echo 🚀 启动客户端（图片功能测试版）...
echo.
echo 📝 测试步骤指南：
echo.
echo 🔹 步骤1：登录两个不同用户
echo   - 使用自动生成的账号或手动输入
echo   - 确保两个用户都成功连接
echo.
echo 🔹 步骤2：开始聊天
echo   - 在用户列表中选择对方
echo   - 发送一条文本消息确认连接正常
echo.
echo 🔹 步骤3：测试图片发送
echo   - 点击📷按钮选择图片文件
echo   - 观察控制台的详细调试信息
echo   - 验证图片是否在发送方正确显示
echo.
echo 🔹 步骤4：验证图片接收
echo   - 在接收方查看图片是否正确显示
echo   - 检查图片的清晰度和完整性
echo.
echo 🔍 重点观察控制台输出：
echo   ✅ 发送图片开始/结束
echo   ✅ 图片文件读取成功
echo   ✅ Base64编码完成
echo   ✅ 网络发送结果
echo   ✅ 添加我的图片消息
echo   ✅ 创建图片气泡
echo   ✅ 图片读取成功和尺寸信息
echo   ✅ 图片缩放完成
echo   ✅ 图片气泡创建成功
echo.

java %IMAGE_DEBUG_OPTS% -cp target/classes com.qqim.client.ClientMain

echo.
echo === 测试结果分析 ===
echo.
echo 🔍 如果图片无法显示，请检查：
echo 1. 控制台是否显示"图片读取成功"
echo 2. 是否出现"ImageIO.read返回null"错误
echo 3. 图片格式是否支持（JPG/PNG/GIF）
echo 4. 图片文件是否损坏
echo 5. 网络发送是否成功
echo.
echo 📊 常见问题排查：
echo - 图片气泡为空：检查createImageBubble方法调试信息
echo - 图片格式错误：更换为JPG或PNG格式
echo - 网络传输失败：检查服务器连接状态
echo - 图片过大：尝试使用较小的图片文件
echo.

pause 